home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ahoy 1988 March
/
Ahoy_Magazine_88-03_1988_Double_L.d64
/
Vee Kloros
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
6KB
|
146 lines
10 ifx=.thenx=1:load"kloros.obj",8,1
20 poke53281,.:poke53280,.:printchr$(8)chr$(142)chr$(144)chr$(147):goto190
30 pokes+u,q:pokes+f,o:forc=zto.step-u:pokes+u,c:fora=.toz:next:next
40 pokes+f,o-u:return
50 onfnb(.)goto90:x=h+(c=130)*-u:syssf,b(x):sc=sc+50*(ls+u):i$=str$(sc)
60 syspl,32,8:print"[158]";:gosub180
70 fori=.tof:pokevb+x,38+i:fora=.to40:next:next:pokevb+x,51:gosub30
80 return
90 pokes+u,k:pokes,o:pokes+f,l*w+z:pokev+f,peek(v):pokev+q,peek(v+u)-k
100 pokev+z,peek(v+z)orf:pokes+f,e*z+u:return
110 x=e+((c=z-uorc=l)*-u):syssb,x,38,f:systf,b(x):systc,h,rorb(x):pokev+39+x,u
120 gosub30:waitv+z,b(x),b(x):sc=sc+vx*(ls+u):i$=str$(sc):syspl,32,8:print"[158]";
130 gosub180:r=8+(t<w)*-16:syssb,x,43,7:systc,h,r:pokevb+x,50+(t>u)*n+(t>w)*-u
140 pokev+x*w+u,.:pokev+39+x,n-w:pokev+z,peek(v+z)orb(x):c=peek(vc):return
150 a=(rnd(u)*w)+e:x=fnx(.):i=fny(.)
160 sysmd,q,d(u+x,u+i):pokev+vx,peek(v+a*w):pokev+vy,peek(v+a*w+u)
170 pokev+z,peek(v+z)orb:return
180 printright$("00000"+(right$(i$,len(i$)-u)),q):a=fre(.):return
190 gosub1070:gosub1120:gosub740:poke731,2:poke785,135:poke786,199
200 dimb(7),d(2,2),s(7),t(4,31),t$(4),c(9)
210 forx=.to7:b(x)=2^x:next
220 v=53248:m=.:c=.:i=.:b=32:j=56320:s=54272:vb=50168:vx=10:vy=11:i$="":r=.:a=.
230 g=500:vx=10:vy=11:u=1:w=2:e=3:f=4:q=5:h=6:n=14:k=12:l=22:z=21:t=.:o=129
240 vc=v+30:xs=50884:ys=50897:tc=50910:jf=50923:cf=50930:md=50949:ss=50993:sh=3
250 sb=51012:sf=51043:tf=51060:pl=51108:lc=685:irq=50176:iq=740:sc=.:hi=.:ls=.
260 deffnf(x)=(peek(j)and(n+w))=.:deffnk(x)=-(fnf(.)and((peek(v+z)andf)=.))
270 deffnb(x)=-(c<>l*eandc<>o+u):deffnl(x)=-((peek(v+z)andb)=.)
280 deffnx(x)=sgn(peek(v)-peek(v+a*w)):deffny(x)=sgn(peek(v+u)-peek(v+a*w+u))
290 deffnc(x)=-((candq)>.):deffncd(x)=-((cand193)=u)
300 deffnw(x)=-(c=norc=korc=lorc=z-u):deffnr(x)=rnd(u)*(h+w)+u
310 forx=.to31:reada:t(.,x)=a:t(1,x)=a:t(2,x)=a:next
320 fori=3to4:forx=.to31:readt(i,x):nextx,i:forx=.to4:readt$(x),c(2*x),c(2*x+1)
330 next:forx=.to2:fori=.to2:readd(x,i):nexti,x:fori=.to7:reads(i):next
340 forx=.to13:b$(.)=b$(.)+"#%":b$(1)=b$(1)+"$&":next
350 sysxs,24,225:sysys,55,230:syscf,36,39,24:syssb,3,43,7:syssb,4,43,7
360 syssf,0:syssf,35:systf,0
370 sysmd,0,0:sysmd,1,0:sysmd,2,1:sysmd,3,4:sysmd,4,6:sysmd,6,0:sysmd,7,0
380 sysss,0,1:sysss,2,5:sysss,3,1:sysss,4,1
390 pokev+28,219:pokev+37,15:pokev+38,11:pokev+41,1
400 pokeiq,.:forx=.to31:poke61720+x,.:next:pokeiq,1:sysss,5,1
410 syspl,2,13:print" press fire button to start mission "
420 ls=.:t=.:i=.:print"";:fora=.to4:syspl,3+a*7,15:printt$(a);:next:gosub990
430 print:print"[147][149]"b$(1):print"[145][145]":forx=.to11:printb$(.):printb$(1):next
440 printb$(.)"":forx=.to20
450 printchr$(13)tab(28)"[194] [194][157]";chr$(148)" ";:next
460 printchr$(13)tab(28)"[173][195][195][195][195][195][195][195][195][195][189][157]";chr$(148)"[195]";
470 print""tab(28)"[176][195][195][195][195][195][195][195][195][195][174][157]"chr$(148)"[195]"
480 printtab(28)"[194]vee kloro[194][157]"chr$(148)" [157]s"
490 printtab(28)"[171][195][195][195][195][195][195][195][195][195][179][157]"chr$(148)"[195]":printtab(30)"[176][195][195][195][195][195][195][195][174]"
500 printtab(30)"[194] [194]":printtab(30)"[173][195][195][195][195][195][195][195][189]":printtab(31)"[176][195][195][195][195][195][174]"
510 printtab(31)"[194]score[194]":printtab(31)"[194][158]00000[194]":printtab(31)"[171][195][195][195][195][195][179]"
520 printtab(31)"[194]high [194]":printtab(31)"[194]00000[194]":printtab(31)"[171][195][195][195][195][195][179]"
530 printtab(31)"[194]ships[194]":printtab(31)"[194][159][216] [216] [216][194]":printtab(31)"[171][195][195][195][195][195][179]"
540 printtab(31)"[194]flags[194]":printtab(31)"[194] [194]":printtab(31)"[194] [194]"
550 printtab(31)"[171][195][195][195][195][195][179]"
560 printtab(31)"[194]miles[194]":printtab(31)"[194] [194]":printtab(31)"[173][195][195][195][195][195][189]"
570 forx=.to7:pokevb+x,s(x):next:gosub950
580 pokev+27,-(t=.)*192:r=8+(t<w)*-16:systc,6,r:pokevb+4,50+(t>u)*n+(t>w)*-u
590 gosub880:m=.:pokev+27,-(t=.)*192
600 pokev+z,1+2+8+16+64+128:x=peek(vc):x=peek(vc):poke730,230
610 sysirq:sysjf,u
620 rem main loop
630 c=peek(vc):syspl,n*w+f,z:print""m:onfnk(.)gosub50:onfnc(.)goto660
640 onfnl(.)gosub150:onfnw(.)gosub110
650 m=m+u:on-(m<g)goto630:t=t+u+(t=f)*q:ls=ls+u:sysss,q,ls:goto580
660 onfncd(.)goto670:goto640
670 sysjf,.:pokev+z,peek(v+z)and253:syssb,.,38,f:systf,u:systc,h,roru
680 gosub30:sh=sh-u:syspl,32+sh*w,14:print" "
690 on-(sh=.)goto710:waitv+z,1,1:gosub960:pokevb,32:pokev+z,219
700 syssf,1:forx=.toe:c=peek(vc):next:sysjf,u:goto630
710 waitv+z,u,u:pokev+z,248:syspl,9,12:print" game over "
720 gosub920:forx=.to5000:next:sh=e:t=.:sc=.:pokev+z,.:gosub740:goto400
730 rem title screen
740 print"[147] [176][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][174]"
750 print" [194] [158]cleve blakemore presents... [194]"
760 print" [223] [223][146][195][195][169] [146][169][195][195][195][195][195][195][195][195] [146][195][169][146][169][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][179]"
770 print" [194][223] [223][169] [146][169][180][185][185][180][185][185][146] [160] [169][146][169] [180][146] [180] [182][165][146][184] [146][181][180] [182] [146] [194]"
780 print" [194] [223][160] [146][169] [180][184][146] [180][184][146] [160] [146][223][223][146] [180][146] [180][146] [182][165][146][183][223][223][180][146] [182][146][223][223][146] [194]"
790 print" [171][195][195][223][169][195][195][180][184][184][180][184][184][146][195][195][195] [146][195][223][223][180] [180] [182][165][146][195][195] [180] [182] [146][195][179]"
800 print" [194] [185][185][146] [223] [146] [194]"
810 print" [194] [158]joystick in port two [194]"
820 print" [171][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][179]"
830 print" [194]approaching v-kls,the mystery planet[194]"
840 print" [171][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][179]"
850 print" [194]"spc(36)"[194]"
860 print" [173][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][189]":return
870 rem new terrain
880 pokeiq,.:forx=.to31:poke61720+x,t(t,x):next:pokeiq,1:syspl,31,4
890 print""t$(t):pokev+34,c(t*2):pokev+35,c(t*2+1):poke646,c(t*2+1)+8
900 syspl,(32+t*2+(t>2)*-35),17:print"\":syspl,32,21:print" "
910 pokev+42,12:pokev+43,12:pokelc,12:pokev+44,12:pokev+45,12
920 ifsc>hithenhi=sc
930 i$=str$(hi):syspl,32,11:print"[146]";:gosub180:return
940 rem reset positions
950 pokev+12,220:pokev+14,125:pokev+13,.:pokev+15,130
960 pokev,125:pokev+1,215:pokev+2,peek(v):pokev+3,peek(v+1)-90
970 pokev+6,75:pokev+7,.:pokev+8,200:pokev+9,.:return
980 rem computerese - select terrain
990 pokes+11,64:poke s+24,15:pokes+u,25:pokes+q,16:pokes+h,240:pokes+f,17
1000 pokes+u,n*rnd(.):i=t
1010 ifusr(.)=3thent=t+1+(t=4)*5
1020 ifusr(.)=7thent=t-1+(t=.)*-5
1030 syspl,3+t*7,15:print""t$(t):ift<>ithensyspl,3+i*7,15:print"[146]"t$(i)
1040 iffnf(.)=.then1000
1050 sys52545:pokes+h,242:pokes+w,10:pokes+e,o:return
1060 rem copy char set
1070 poke56333,127:poke1,51
1080 poke781,9:poke782,1:poke90,.:poke91,216:poke88,.:poke89,248:sys41964
1090 poke1,55:poke56333,129
1100 reada:ifa=-1thenreturn
1110 forx=.to7:readd:poke61440+a*8+x,d:next:goto1100
1120 poke56578,peek(56578)or3:poke56576,peek(56576)and252
1130 poke53272,peek(53272)and15:poke648,192:printchr$(147)
1140 poke53272,(peek(53272)and240)or12
1150 poke53270,peek(53270)or16:printchr$(147):return
1160 data28,128,112,127,124,112,64,64,64
1170 data48,126,66,66,66,66,66,126,.
1180 data49,8,24,8,8,8,8,28,.
1190 data50,126,66,4,8,16,32,126,.
1200 data51,126,2,2,14,2,2,126,.
1210 data52,4,12,20,36,126,4,4,.
1220 data53,126,64,64,126,2,2,126,.
1230 data54,126,64,64,126,66,66,126,.
1240 data55,126,2,2,2,2,2,2,.
1250 data56,126,66,66,126,66,66,126,.
1260 data57,126,66,66,126,2,2,2,.
1270 data88,,24,24,219,255,219,219,.,-1
1280 data186,102,153,170,170,157,102,234
1290 data171,102,153,170,170,153,102,186
1300 data170,102,153,170,174,153,102,170
1310 data170,102,153,174,170,153,118,170
1320 data170,42,202,242,252,252,252,252
1330 data252,252,252,252,241,197,21,.
1340 data170,168,161,133,21,21,21,21
1350 data21,21,21,21,69,81,84,.
1360 data3,3,10,46,46,186,186,170
1370 data170,170,170,42,42,10,3,3
1380 data192,192,80,84,148,149,165,165
1390 data165,165,165,148,84,80,192,192
1400 rem terrain types
1410 data oceans,14,6,desert,10,9,jungle,7,5,city 1,11,15,city 2,11,9
1420 rem fire direction array
1430 data 8,1,2,7,,3,6,5,4
1440 rem sprite pointers
1450 data 32,52,33,50,36,33,34,35